package com.atguigu.yygh.hosp.globalexp;

import com.atguigu.yygh.hosp.result.R;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

//@ControllerAdvice 配合 @ExceptionHandler 实现全局异常处理
//全局异常处理器
@ControllerAdvice
@ResponseBody//全局异常处理器给客户端响应json数据,而不是页面的转发和重定向
public class GlobalExceptionHandler {

    @ExceptionHandler(value = Exception.class)
    public R handlerExceptionHandle(Exception exp){
        return R.error().message("出现异常了...");
    }
    //定义多个异常,不同的异常执行不同的异常处理方法
    @ExceptionHandler(value = ArithmeticException.class)
    public R handlerArithmeticException(ArithmeticException exp){
        return R.error().message("算数异常.."+exp.getMessage());
    }

    @ExceptionHandler(value = NullPointerException.class)
    public R handlerNullPointerException(NullPointerException exp){
        return R.error().message("空指针异常.."+exp.getMessage());
    }
    @ExceptionHandler(value = YyghException.class)
    public R handlerYyghException(YyghException exp){
        return R.error().message("自定义异常.."+exp.getYygh_message());
    }


}
